package com.pan.creational.factory;

/**
 * 工厂模式 ， gof23中的 创建型模式 的一种
 *
 * 一种创建类的方式，即把创建对象的过程封装起来，使用者不必关心如何创建对象
 * 就像现实中的工厂一样，只需把需要的产品告诉工厂，让工厂生成出来就行，而不用关系对象具体是如何制造的
 *
 * 缺点是是，增加了系统复杂度，增加了依赖性，每次添加一个新都要增加新的工厂实现
 *
 *
 */

public class FactoryApplication {

    public static void main(String[] args) {
        ShapeFactory shapeFactory = new ShapeFactory();
        Shape circle = shapeFactory.getShape(Type.CIRCLE);
        circle.draw();

        Shape rectangle = shapeFactory.getShape(Type.RECTANGLE);
        rectangle.draw();

        Shape square = shapeFactory.getShape(Type.SQUARE);
        square.draw();


    }
}
